'''
Created on 15/10/2011

@author: Daniel
'''
from Tkinter import *
import tkMessageBox
from VariaveisGlobais import *
from Endereco import *
from Funcionario import *
from Programa import *

class Janela_cadastro_funcionario:
    def __init__(self, raiz):
        self.meuPai = raiz

        self.frame1=Frame(self.meuPai)
        self.frame1.grid(row = 1, column = 1)
        self.frame2=Frame(self.meuPai)
        self.frame2.grid(row = 2, column = 1)
        self.frame3=Frame(self.meuPai)
        self.frame3.grid(row = 3, column = 1)

        Label(self.frame1, text="Dados Pessoais", font = fonte_label).grid(row = 1, column = 1)
        Label(self.frame1, text="").grid(row = 2, column = 1)
        
        Label(self.frame2, text="Nome Completo: ", font = fonte_label).grid(row = 2, column = 1, sticky = W)              
        self.nome = Entry(self.frame2, width = comprimento_texto_nome, font = fonte_texto)
        self.nome.grid(row = 2, column = 2, sticky = W)
        self.nome.focus_force()

        Label(self.frame2, text="Telefone: ", font = fonte_label).grid(row = 3, column = 1, sticky = W)
        self.telefone = Entry(self.frame2, width = comprimento_texto_tel, font = fonte_texto)
        self.telefone.grid(row = 3, column = 2, sticky = W)

        Label(self.frame2, text="CPF: ", font = fonte_label).grid(row = 4, column = 1, sticky = W)
        self.cpf = Entry(self.frame2, width = comprimento_texto_tel, font = fonte_texto)
        self.cpf.grid(row = 4, column = 2, sticky = W)

        Label(self.frame2, text="Email: ", font = fonte_label).grid(row = 5, column = 1, stick = W)
        self.email = Entry(self.frame2, width = comprimento_texto_email, font = fonte_texto)
        self.email.grid(row = 5, column = 2, stick = W)

        Label(self.frame2, text="Funcao: ", font = fonte_label).grid(row = 6, column = 1, sticky = W)
        self.var_funcao = StringVar(self.frame2)
        self.var_funcao.set('Professor') 
        self.funcao = OptionMenu(self.frame2, self.var_funcao, 'Professor', 'Servicos', 'Adiministrativo', 'Voluntario')
        self.funcao.config(width = 15)        
        self.funcao.grid(row = 6, column = 2, sticky = W)

        Label(self.frame2, text='').grid(row = 7, column = 1)
        Label(self.frame2, text="Endereco", font = fonte_label).grid(row = 8, column = 2, sticky = W)
        Label(self.frame2, text='').grid(row = 9, column = 1)

        Label(self.frame2, text="Nome da Rua: ", font = fonte_label).grid(row = 10, column = 1, sticky = W)              
        self.nome_da_rua = Entry(self.frame2, width = comprimento_texto_nome, font = fonte_texto)
        self.nome_da_rua.grid(row = 10, column = 2, sticky = W)

        Label(self.frame2, text="Numero da casa: ", font = fonte_label).grid(row = 11, column = 1, sticky = W)
        self.numero_da_casa = Entry(self.frame2, width = comprimento_texto_tel, font = fonte_texto)
        self.numero_da_casa.grid(row = 11, column = 2, sticky = W)

        Label(self.frame2, text="CEP: ", font = fonte_label).grid(row = 11, column = 2)
        self.cep = Entry(self.frame2, width = comprimento_texto_tel, font = fonte_texto)
        self.cep.grid(row = 11, column = 2, sticky = E)

        Label(self.frame2, text="Complemento: ", font = fonte_label).grid(row = 12, column = 1, sticky = W)
        self.complemento = Entry(self.frame2, width = comprimento_texto_nome, font = fonte_texto)
        self.complemento.grid(row = 12, column = 2, sticky = W)

        Label(self.frame2, text="Bairro: ", font = fonte_label).grid(row = 13, column = 1, sticky = W)
        self.bairro = Entry(self.frame2, width = comprimento_texto_tel, font = fonte_texto)
        self.bairro.grid(row = 13, column = 2, sticky = W)

        Label(self.frame2, text="Cidade: ", font = fonte_label).grid(row = 13, column = 2)
        self.cidade = Entry(self.frame2, width = comprimento_texto_tel, font = fonte_texto)
        self.cidade.grid(row = 13, column = 2, sticky = E)

        Label(self.frame2, text="Estado: ", font = fonte_label).grid(row = 14, column = 1, sticky = W)
        self.var_estado = StringVar(self.frame2)
        self.var_estado.set('Acre') 
        self.estado = OptionMenu(self.frame2, self.var_estado, 'Acre', "Alagoas", 'Amapa', 'Amazonas', "Bahia", "Ceara",
                                 "Distrito Federal", "Espirito Santo", "Goias", "Maranhao", "Mato Grosso", "Mato Grosso do sul",
                                 "Minhas Gerais", "Para", "Parana", "Paraiba", "Pernambuco", "Piaui", "Rondonia", "Roraima",
                                 "Rio Grande do Norte", "Rio Grande do Sul", "Rio de janeiro", "Sao Paulo", "Santa Catarina",
                                 "Sergipe", "Tocantins", )
        self.estado.config(width = 19)        
        self.estado.grid(row = 14, column = 2, sticky = W)        

        Label(self.frame2, text='').grid(row = 15, column = 1)

        Label(self.frame2, text="No Max de Emprestimos: ", font = fonte_label).grid(row = 16, column = 1, stick = W)
        self.var_max_emprestimo = StringVar(self.frame2)
        self.var_max_emprestimo.set('3')
        self.max_emprestimo = OptionMenu(self.frame2, self.var_max_emprestimo, '1', '2', '3')
        self.max_emprestimo.config(width = 4)
        self.max_emprestimo.grid(row = 16, column = 2, stick = W)

        Label(self.frame2, text="Autorizado: ", font = fonte_label).grid(row = 17, column = 1, sticky = W)
        self.var_autorizacao = StringVar(self.frame2)
        self.var_autorizacao.set("Sim")
        self.autorizacao = OptionMenu(self.frame2, self.var_autorizacao, "Sim", "Nao")
        self.autorizacao.config(width = 4)
        self.autorizacao.grid(row = 17, column = 2, sticky = W)

        Label(self.frame3, text="").grid(row = 1, column = 1)
        self.botao_cadastrar = Button(self.frame3, width = 10, command = self.Cadastrar, text = "Cadastrar").grid(row = 2, column = 1, padx= 10)
        self.botao_cancelar = Button(self.frame3, width = 10, command = self.Cancelar, text = "Cancelar").grid(row = 2, column = 2, padx = 10)

    def Cadastrar(self):
        #verifica se a opcao escolhida foi autorizado ou nao
        if self.var_autorizacao.get() == "Sim":
            self.autorizado = 1
        else:
            self.autorizado = 0
            
        #verifica se os campos nome, matricula e email estao vazios, se estiverem o sistema gera uma
        #mensagem obrigando o usuario a preencher esses campos
        if not self.nome.get() or not self.cpf.get() or not self.email.get():
            tkMessageBox.showwarning('Mensagem do sistema', 'O preenchimento do campo Nome, cpf e email sao obrigatorios.')
            
        else:
            #instancia o endereco
            self.endereco = Endereco()
            self.endereco.set_nome_da_rua(self.nome_da_rua.get())
            self.endereco.set_numero(self.numero_da_casa.get())
            self.endereco.set_cep(self.cep.get())
            self.endereco.set_complemento(self.complemento.get())
            self.endereco.set_bairro(self.bairro.get())
            self.endereco.set_cidade(self.cidade.get())
            self.endereco.set_estado(self.var_estado.get())
            
            #instancia o funcionario
            self.funcionario = Funcionario()
            self.funcionario.set_nome(self.nome.get())
            self.funcionario.set_telefone(self.telefone.get())
            self.funcionario.set_email(self.email.get())
            self.funcionario.set_funcao(self.var_funcao.get())
            self.funcionario.set_cpf(self.cpf.get())
            self.funcionario.set_endereco(self.endereco)
            self.funcionario.set_numero_max_emprestimo(int(self.var_max_emprestimo.get()))
            self.funcionario.set_autorizacao(self.autorizado)
            self.funcionario.set_deletado(0)
            self.funcionario.set_livros_de_posse(0)
            
            programa.cadastrar_funcionario(self.funcionario)
       

    def Cancelar(self):
        try:
            self.meuPai.destroy()
            self.container = Frame(self.meuPai)
        except:
            pass
